#include <sys_head.h>

int main(int argc, char const *argv[])
{
    //判断命令行参数
    if ( argc < 2)
    {
        printf("参数错误:%s ip port\n",argv[0]);
        return -1;
    }

    // 给定默认ip

    char ip_str[128];

    if ( 3 != argc )
    {
        
        strcpy( ip_str , "192.168.91.182");
    }
    else{
        
        strcpy( ip_str , argv[2]);
    }
    
    // 1、创建用户数据报 套接字
    int Udp_Sock_fd = socket(AF_INET,SOCK_DGRAM,0);

    // 2、填充服务器网络信息结构体
    struct sockaddr_in Udp_Sock_addr_server;
    Udp_Sock_addr_server.sin_family = AF_INET;
    Udp_Sock_addr_server.sin_port = htons(atoi(argv[1]));
    Udp_Sock_addr_server.sin_addr.s_addr = inet_addr(ip_str);

    socklen_t Udp_Sock_size_server = sizeof(Udp_Sock_addr_server);
    
    // 3、收发数据
    //数据接收
    char buf[1024] = " ";
    while (1)
    {
        memset(buf,0,sizeof(buf));
        //发送
        printf("请输入要发送的信息:");
        scanf("%s",buf);
        sendto(Udp_Sock_fd,buf,sizeof(buf),0,(struct sockaddr *)&Udp_Sock_addr_server,Udp_Sock_size_server);
        //可需要可不需要接收
        // recvfrom(Udp_Sock_fd,buf,sizeof(buf),0,(struct sockaddr *)&Udp_Sock_addr_server,&Udp_Sock_size_server);
        // printf("接收到的信息:%s\n",buf);
    }
    
    // 4、关闭套接字
    close(Udp_Sock_fd);
    return 0;
}
